package com.ruoyi.yljf.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.yljf.domain.User;
import com.ruoyi.yljf.domain.dto.*;
import com.ruoyi.yljf.domain.vo.UserInfoVO;
import com.ruoyi.yljf.domain.vo.UserLoginVO;
import net.bytebuddy.implementation.bytecode.Throw;

import javax.servlet.http.HttpServletRequest;
/**
 * 用户管理Service接口
 * 
 * @author metaee
 * @date 2025-01-07
 */
public interface IUserService extends IService<User> {
    /**
     * 查询用户管理列表
     * 
     * @param user 用户管理
     * @return 用户管理集合
     */
    public List<User> selectUserList(User user);

    /**
     * 用户手机号注册
     * @param request
     */
    AjaxResult signIn(UserRegisterDTO request);

    /**
     * 用户登录
     * @param request
     * @return
     */
    AjaxResult login(UserLoginDTO request);

    /**
     * 绑定VX
     * @param request
     * @return
     */
    AjaxResult bindVX(UserBindVXDTO request);

    /**
     * 根据 id 查找用户
     * @param userId
     * @return user
     */
    User getUserById(Long userId);

    /**
     * token登录
     * @param dto
     * @return
     */
    AjaxResult tokenLogin (UserLoginDTO dto);

    /**
     * 更新个人信息
     * @param userInfoDTO
     * @return
     */
    Integer updateUserInfo(UserInfoDTO userInfoDTO);

    /**
     * 用户余额兑换   祈福币/祈智币
     * @param dto
     * @return
     */
    AjaxResult convert(ConvertDTO dto, HttpServletRequest req);

    AjaxResult loginOut(HttpServletRequest req);
}
